package com.rightrule.rule.dto;

import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 策略版本包
 */
@Data
public class StrategyVersionPkgDTO implements Serializable {

    /**
     * 快照包id
     */
    private Long deployId;

    /**
     * 测试任务id
     */
    private Long taskId;

    /**
     * 策略id
     */
    private Long strategyId;

    /**
     * 策略版本id
     */
    private Long strategyVersionId;

    /**
     * 策略版本描述
     */
    private String versionDesc;

    /**
     * 策略编码
     */
    private String strategyCode;

    /**
     * 策略名称
     */
    private String strategyName;

    /**
     * 流水保存百分比
     */
    private Integer waterRate;

    /**
     * 策略版本的oss存放地址
     */
    private String packageUrl;

    /**
     * 策略文本md5
     */
    private String packageMd5;

    /**
     * 生效环境：0预发环境，1线上环境，2测试包
     */
    private Integer env;

    /**
     * 修改者
     */
    private String gmtModifier;

    /**
     * 修改时间
     */
    private Date gmtModified;

    /**
     * 依赖的输入变量
     */
    private List<DecisionFieldDTO> inputFields;

    /**
     * 依赖的中间变量
     */
    private List<DecisionFieldDTO> midFields;

    /**
     * 输出变量
     */
    private List<DecisionFieldDTO> outputFields;

    /**
     * 依赖的时间变量
     */
    private List<DecisionFieldDTO> eventFields;

    /**
     * 主规则流
     */
    private RuleFlowSnapshotDTO ruleFlow;

    /**
     * 子规则流列表
     */
    private Map<String, RuleFlowSnapshotDTO> subRuleFlowMaps;

    /**
     * 旁路测试包-旁路流量配置
     */
    private StrategyDivisionSnapshotDTO byPathDivisionSnapshotDTO;

    /**
     * 旁路测试包-旁路流量配置
     */
    private List<DecisionUnitTestDTO> unitTestDTOS;

}
